<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>


  const obj = {
    _msg:"hello world",
    // 访问器
    get msg(){
      fn1();
      return this._msg;
    },
    // 控制器
    set msg(val){
      fn2(val);
      this._msg = val;
    },
    _info:"123",
    get info(){
      return this._info;
    },
    set info(val){
      this._info = val;
    }
  }

  console.log("原始数据为：" + obj.msg );

  obj.msg = "hahahhaa";

  obj.msg;

  obj.msg = "123";

  const a = obj.msg;

  console.log(a);

  console.log(obj.info);
  obj.info = "abc";
  console.log(obj.info);


  // 如果访问器不存在，那么在访问对应属性时，会的得到undefined
  // 如果控制器不存在，那么在修改对应属性时，无法成功修改（该属性等同于只读属性）


  console.log( obj );






  function fn1(){
    console.log("数据被访问了")
  }
  function fn2(val){
    console.log("数据被修改成了：", val)
  }
  
  
</script>
</html>